package com.hippo.core.util.custom;

import cn.binarywang.tools.generator.base.GenericGenerator;

import java.util.Random;


/**
 * The type Passport generator.
 */
public class PassportGenerator extends GenericGenerator {
    private static final GenericGenerator instance = new PassportGenerator();

    private PassportGenerator() {
    }

    /**
     * Gets instance.
     *
     * @return the instance
     */
    public static GenericGenerator getInstance() {
        return instance;
    }


    /**
     * 中国护照号码格式：
     * 1、因私普通护照号码格式有:14/15+7位数,G+8位数；
     * 2、因公普通的是:P.+7位数；
     * 3、公务的是：S.+7位数 或者 S+8位数,
     * 4、外交护照：以D开头（D=diplomatic）；代表旧版无芯片的护照。
     * 5、字母“E”开头的代表有电子芯片的普通护照
     * @return String
     */
    @Override
    public String generate() {
        Random random = new Random();
        String[] ValCodeArr = new String[]{"14", "15", "G", "P.", "S.", "S", "D", "E"};
        int index = (int) (Math.random() * ValCodeArr.length);
        String val = ValCodeArr[index];
        if (val.length() == 1) {
            return val + (random.nextInt(90000000) + 10000000);
        } else {
            return val + (random.nextInt(9000000) + 1000000);
        }
    }

    /**
     * The entry point of application.
     *
     * @param args the input arguments
     */
    public static void main(String[] args) {
        System.out.println(PassportGenerator.getInstance().generate());
    }
}
